// 定义封装axios

import axios from 'axios';
// 引入store模块(第三方的包localstorage 的封装)
import store from 'store'
// 根据环境变量判断当前的请求的baseUrl
let baseURL = '';
if (process.env.NODE_ENV == 'development') {
    baseURL = '/api'
} else {
    baseURL = 'http://47.94.148.165:3001'
}

const instance = axios.create({
    baseURL: baseURL,
    timeout: 5000,
    headers: { 'Content-Type': 'application/json' }
});

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    if (store.get('userinfo')) {
        let token = store.get('userinfo').token
        // console.log('token', token);
        if (token) {
            config.headers['token'] = token
        }
    }
    // 给请求头添加token
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    // 对状态码进行判断, 进行一个全局的请求提示, 
    // 如果后续有的接口都返回token, 重新存储token, 这样登录的时长就顺延了
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

export default instance